import ReturnDataClass from "./ReturnDataClass.js";
import { api } from "./BaseApi.js";
import toast from "@/libs/message/toast.js";
export function handleApiCommon({
  methods = "get",
  options = {},
  successHandle = null,
  errorHandle = null,
  errorCatchHandle = null,
  errorMsg = "服务器错误！",
  showMsg = true,
}) {
  return new Promise((resolve, reject) => {
    const rdObj = new ReturnDataClass();
    api[methods](options)
      .then(res => {
        if (res.code == 200) {
          rdObj.setFlag(true);
          if (successHandle) {
            successHandle(rdObj, res);
          } else {
            rdObj.setData(res.data);
          }
        } else {
          rdObj.setMsg(res.msg);
          if (errorHandle) {
            errorHandle(rdObj, res);
          }
          if (showMsg) {
            toast.error(rdObj.returnData.msg);
          }
        }
      })
      .catch(err => {
        let msg = "服务器错误！";
        if (typeof err == "string") {
          msg = err;
        }
        if (errorCatchHandle) {
          errorCatchHandle();
        }
        rdObj.setMsg(msg);
        if (showMsg) {
          toast.error(msg);
        }
      })
      .finally(() => {
        resolve(rdObj.returnData);
      });
  });
}
